Understanding Computer Programming

Osher Lifelong Learning Institute
University of Illinois, Urbana-Champaign

Scott Badman, Instructor


Eight Sessions: Thursdays at 3:15 pm until 4:45 pm, from January 28, 2016 to March 17, 2016.
Ninety minutes per session.


Schedule of Topics

The pacing, depth, and order that we cover these topics may vary significantly, depending on the needs and desires of the class members.


Session 1, Jan. 28, 2016:   Algorithms     Topics:
Long Division as done by a human
Division by Repeated Subtraction as done by a human
Pseudocode for the Modulo algorithm
Programming Elements as illustrated by the pseudocode


Session 2, Feb. 4, 2016:   Writing Code     Topics:
Development Strategy
Modulo program implemented in QuickBasic
Prime algorithm in pseudocode
Prime program implemented in QuickBasic
User Friendliness - adding prompts to the program


Session 3, Feb. 11, 2016:   Logic Errors (Bugs) and
                                            Modularization    
Topics:
IF statements
Typical progression of a programming prObject
Bugs in the Prime program
Prime algorithm implemented in QuickBasic with protective IF-ELSE-ENDIF
The Programming Process
All Programming Elements


Session 4, Feb. 18, 2016:   Computability and     
                                            Data Structures
Topics:
Modularization - isolation of the modulo code into a subroutine
Prime algorithm implemented in QuickBasic fully modularized
Prime algorithm implemented in Java
Computability - space and time constraints
Improvements of the Prime algorithm in QuickBasic
Prime algorithm implemented in console Visual Basic


Session 5, Feb. 25, 2016:   History of Programming and    
                                            Object Oriented Programming
Topics:
Comparison of Programming Languages using the modulo algorithm
History of Programming Languages
Object Oriented Programming, implemented by Visual Programming IDE's
Prime algorithm implemented in Object Oriented Visual Basic
Object Oriented Libraries in Microsoft's Visual Studio and Java


Session 6, Mar. 3, 2016:   Network Programming     Topics:
Data Structures - arrays and the Sieve of Eratosthenes
Data Structures - advanced
Internet and Telephone Networks
Network Based Programs - applications, apps, and HTML
Prime implemented in HTML and JavaScript
Prime implemented as an App


Session 7, Mar. 10, 2016:   Logic and Binary Numbers     Topics:
Binary Arithmetic
Logic and Logic Gates


Session 8, Mar. 17, 2016:   Machine Code     Topics:
Definition of a Computer
Machine Code and Assembly Language
Unstructured Programming - JMP (jump) instead of IF and WHILE
The Computer Simulator running the modulo algorithm